import 'dart:io';
import 'package:aqua_plunge/http/app_manager.dart';
import 'package:flutter_util_code/utils.dart';
import 'package:get/get.dart';

import 'FoDeviceTool.dart';

class HeaderUtil {
  Future<Map<String, String>> _getFutureHeader(bool login,bool config) async {
    Map<String, String> headers = {};

    headers['device-id'] =
        await DeviceUtils.getDeviceId(); // 设备id或者udid，保证当前设备唯一值。
    if (Platform.isAndroid) {
      headers['platform'] = 'Android';
      headers['model'] = await DeviceUtils.getModel() ?? ''; // 设备型号
    } else if (Platform.isIOS) {
      headers["platform"] = "iOS";
      headers['model'] = await DeviceUtils.getModel(); // 设备型号
    }
    headers['pkg'] = await FoDeviceTool.packName; // 包名
    headers['ver'] = await FoDeviceTool.appVersion; // 版本 例如1.0.0，读取实际配置的版本号
    headers['p_ver'] = await FoDeviceTool.buildNumber ?? ""; // build number
    headers['kst'] = '1'; // 固定传1
    headers['sys_lan'] = Get.locale?.languageCode ?? "en"; // 手机系统语言 如英文en
    headers['lang'] = Get.locale?.languageCode ?? "en"; // 手机系统语言 如英文en

    // ⚠️请注意：除登录接口和Config接口外，其余接口的Headers均需要附带token，格式为 Bearer拼接登录获取到的token
    if (!login) {
      if(!config){
        headers['Authorization'] = 'Bearer${AppManager.getToken()}';
      }
    }

    if(login){
      headers['Content-Type'] = "application/x-www-form-urlencoded";
    }else{
      headers['Content-Type'] = 'application/json';
    }
    return headers;
  }

  getHeader({bool login = false,bool config = false}) async{
    Map<String, String> headers = {};
    headers = await _getFutureHeader(login,config);
    return headers;
  }

}
